package com.sitech.openapi.domain.customer;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.List;
@ApiModel(value = "Customer",description = "省客户资料")
public class Customer implements Serializable{

    private static final long serialVersionUID = 1L;

    //客户标识  记录客户标识，作为主键
    @ApiModelProperty(value = "客户标识")
    private Long custId;

    //客户名称  记录客户名称。
    @ApiModelProperty(value = "客户名称")
    private String custName;

    //客户编码  记录客户编码。参考协议主数据编码规范
    @ApiModelProperty(value = "客户编码")
    private String custNumber;

    //客户地址  记录客户地址。
    @ApiModelProperty(value = "客户地址")
    private String custAddr;

    //客户战略分群    记录客户战略分群。参考集团主数据编码规范。
    @ApiModelProperty(value = "客户战略分群")
    private String custType;

    //客户战略下属分群  记录客户战略下属分群。参考集团主数据编码规范。
    @ApiModelProperty(value = "客户战略下属分群")
    private String custSubType;


    //客户级别  记录客户归属区域级别，包括集团客户、跨省客户、省内客户等。参考集团主数据编码规范。
    @ApiModelProperty(value = "客户级别")
    private String custAreaGrade;

    //入网时间  记录客户入网时间,DateTime类型
    @ApiModelProperty(value = "入网时间")
    private String enterDate;

    //行业类型标识    记录行业类型标识，作为外键，指向行业类型实体。
    @ApiModelProperty(value = "行业类型标识")
    private Integer industryTypeId;

    //外部客户标识    外部客户标识，记录集团客户标识。集团4G客户标识。
    @ApiModelProperty(value = "外部客户标识")
    private String extCustId;


    //保密等级  记录客户的保密等级，比如：部分重要客户对于普通营业员不开放。参考集团主数据编码规范。
    @ApiModelProperty(value = "保密等级")
    private String secrecyLevel;


    //客户管控级别    记录客户管控级别。参考集团主数据编码规范。
    @ApiModelProperty(value = "客户管控级别")
    private String custControlLevel;

    //是否允许代办    记录客户是否授权允许别人代办，比如：部分客户有特殊要求需本人持证件才可办理。参考集团主数据编码规范。
    @ApiModelProperty(value = "是否允许代办")
    private Integer isInstead;

    //是否实名认证    实名认证标识，记录该客户是否已经实名认证通过。实名认证的规则由应用实现。参考集团主数据编码规范。
    @ApiModelProperty(value = "是否实名认证")
    private Integer isRealname;

    //客户状态  记录客户状态。参考集团主数据编码规范。
    @ApiModelProperty(value = "客户状态")
    private String statusCd;

    //状态时间  状态时间,DateTime类型
    @ApiModelProperty(value = "状态时间")
    private String statusDate;

    //备注    备注
    @ApiModelProperty(value = "备注")
    private String remark;

    //信用额度标识    引用资源CreditLimit
    @ApiModelProperty(value = "信用额度标识")
    private GCreditLimit creditLimit;

    //信用度标识 引用资源Credit
    @ApiModelProperty(value = "信用度标识")
    private Credit credit;

    //联系信息标识    引用资源ContactsInfo
    @ApiModelProperty(value = "联系信息标识")
    private List<ContactsInfo> contactsInfos;

    //区域标识  引用资源CommonRegion
    @ApiModelProperty(value = "区域标识")
    private String regionId;


    //参与人标识 引用资源Party
    @ApiModelProperty(value = "参与人标识")
    private Long partyId;

    //纳税人标识 引用资源TaxPayer
    @ApiModelProperty(value = "纳税人标识")
    private String taxPayerId;

    //客户属性  引用一组子资源CustAttr
    @ApiModelProperty(value = "客户属性")
    private List<CustAttr> custAttrs;

    //客户证件信息    引用一组子资源PartyCert
    @ApiModelProperty(value = "客户证件信息")
    private List<PartyCert> partyCerts;

    //记录客户服务等级
    @ApiModelProperty(value = "客户服务等级")
    private String serviceLevel;

    //客户标签  引用一组子资源CustLabel
    @ApiModelProperty(value = "客户标签")
    private List<CustLabel> custLabel;

    public Long getCustId() {
        return custId;
    }

    public void setCustId(Long custId) {
        this.custId = custId;
    }

    public String getCustName() {
        return custName;
    }

    public void setCustName(String custName) {
        this.custName = custName;
    }

    public String getCustNumber() {
        return custNumber;
    }

    public void setCustNumber(String custNumber) {
        this.custNumber = custNumber;
    }

    public String getCustAddr() {
        return custAddr;
    }

    public void setCustAddr(String custAddr) {
        this.custAddr = custAddr;
    }

    public String getCustType() {
        return custType;
    }

    public void setCustType(String custType) {
        this.custType = custType;
    }

    public String getCustSubType() {
        return custSubType;
    }

    public void setCustSubType(String custSubType) {
        this.custSubType = custSubType;
    }

    public String getCustAreaGrade() {
        return custAreaGrade;
    }

    public void setCustAreaGrade(String custAreaGrade) {
        this.custAreaGrade = custAreaGrade;
    }

    public String getEnterDate() {
        return enterDate;
    }

    public void setEnterDate(String enterDate) {
        this.enterDate = enterDate;
    }

    public Integer getIndustryTypeId() {
        return industryTypeId;
    }

    public void setIndustryTypeId(Integer industryTypeId) {
        this.industryTypeId = industryTypeId;
    }

    public String getExtCustId() {
        return extCustId;
    }

    public void setExtCustId(String extCustId) {
        this.extCustId = extCustId;
    }

    public String getSecrecyLevel() {
        return secrecyLevel;
    }

    public void setSecrecyLevel(String secrecyLevel) {
        this.secrecyLevel = secrecyLevel;
    }

    public String getCustControlLevel() {
        return custControlLevel;
    }

    public void setCustControlLevel(String custControlLevel) {
        this.custControlLevel = custControlLevel;
    }

    public Integer getIsInstead() {
        return isInstead;
    }

    public void setIsInstead(Integer isInstead) {
        this.isInstead = isInstead;
    }

    public Integer getIsRealname() {
        return isRealname;
    }

    public void setIsRealname(Integer isRealname) {
        this.isRealname = isRealname;
    }

    public String getStatusCd() {
        return statusCd;
    }

    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }

    public String getStatusDate() {
        return statusDate;
    }

    public void setStatusDate(String statusDate) {
        this.statusDate = statusDate;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public GCreditLimit getCreditLimit() {
        return creditLimit;
    }

    public void setCreditLimit(GCreditLimit creditLimit) {
        this.creditLimit = creditLimit;
    }

    public Credit getCredit() {
        return credit;
    }

    public void setCredit(Credit credit) {
        this.credit = credit;
    }

    public List<ContactsInfo> getContactsInfos() {
        return contactsInfos;
    }

    public void setContactsInfos(List<ContactsInfo> contactsInfos) {
        this.contactsInfos = contactsInfos;
    }

    public String getRegionId() {
        return regionId;
    }

    public void setRegionId(String regionId) {
        this.regionId = regionId;
    }

    public Long getPartyId() {
        return partyId;
    }

    public void setPartyId(Long partyId) {
        this.partyId = partyId;
    }

    public String getTaxPayerId() {
        return taxPayerId;
    }

    public void setTaxPayerId(String taxPayerId) {
        this.taxPayerId = taxPayerId;
    }

    public List<CustAttr> getCustAttrs() {
        return custAttrs;
    }

    public void setCustAttrs(List<CustAttr> custAttrs) {
        this.custAttrs = custAttrs;
    }

    public List<PartyCert> getPartyCerts() {
        return partyCerts;
    }

    public void setPartyCerts(List<PartyCert> partyCerts) {
        this.partyCerts = partyCerts;
    }

    public String getServiceLevel() {
        return serviceLevel;
    }

    public void setServiceLevel(String serviceLevel) {
        this.serviceLevel = serviceLevel;
    }

    public List<CustLabel> getCustLabel() {
        return custLabel;
    }

    public void setCustLabel(List<CustLabel> custLabel) {
        this.custLabel = custLabel;
    }

    @Override
    public String toString() {
        return "Customer{" +
                "custId=" + custId +
                ", custName='" + custName + '\'' +
                ", custNumber='" + custNumber + '\'' +
                ", custAddr='" + custAddr + '\'' +
                ", custType='" + custType + '\'' +
                ", custSubType='" + custSubType + '\'' +
                ", custAreaGrade='" + custAreaGrade + '\'' +
                ", enterDate='" + enterDate + '\'' +
                ", industryTypeId=" + industryTypeId +
                ", extCustId='" + extCustId + '\'' +
                ", secrecyLevel='" + secrecyLevel + '\'' +
                ", custControlLevel='" + custControlLevel + '\'' +
                ", isInstead=" + isInstead +
                ", isRealname=" + isRealname +
                ", statusCd='" + statusCd + '\'' +
                ", statusDate='" + statusDate + '\'' +
                ", remark='" + remark + '\'' +
                ", creditLimit=" + creditLimit +
                ", credit=" + credit +
                ", contactsInfos=" + contactsInfos +
                ", regionId='" + regionId + '\'' +
                ", partyId=" + partyId +
                ", taxPayerId='" + taxPayerId + '\'' +
                ", custAttrs=" + custAttrs +
                ", partyCerts=" + partyCerts +
                ", serviceLevel='" + serviceLevel + '\'' +
                ", custLabel=" + custLabel +
                '}';
    }
}
